import adminList from "../views/adminList.ejs";
import adminListTable from "../components/AdminListTable.ejs";
import {getAdminList, postAdminList,deleteAdminListById} from "../api/adminListApi";
// 添加管理员的事件处理函数
const addAdinListHandler = async function(){
	const form = document.adminListForm;
	// 管理员账号
	const adminName = form.adminName.value.trim();
	// 管理员密码
	const passWord = form.passWord.value.trim();
	// 重复密码
	const rePassWord = form.rePassWord.value.trim();
	// 如果管理员账号不是纯英文
	if(!/^[a-z]+$/i.test(adminName)){
		console.log(111)
		// success:成功
		// error:错误
		toastr.error('管理员的账号只允许是英文');
		return;
	}
	// 密码只允许是数字字母下划线
	if(!/^\w+$/.test(passWord)){
		toastr.error('密码只允许是数字字母下划线');
		return;
	}
	// 如果重复密码与密码不一致
	if(passWord !== rePassWord){
		toastr.error('重复密码与管理员密码不一致');
		return;
	}
	const data = await postAdminList(adminName,passWord);
	form.reset();// 清空表单
	// 关闭弹出层
	document.querySelector("#adminListClose").click();
	getAdminListAsync();// 更新管理员列表
	toastr.success(data.msg);
	
}
// 获取管理员列表并进行界面的更新
const getAdminListAsync = function(){
	getAdminList().then(({adminList})=>{
		document.querySelector("#adminListWrap").innerHTML = adminListTable({
			adminList
		});
	})
}
// 点击表格包裹元素处理函数
const adminListWrapHandler = async function(e){
	if(e.target.classList.contains("btn-danger")){
		if(window.confirm("您确定要删除该条记录吗？")){
			const {msg} = await deleteAdminListById(e.target.dataset.id);
			toastr.success(msg);
			getAdminListAsync();// 更新表格视图
			
		}
		
	}else if(e.target.classList.contains("btn-success")){
		console.log("修改密码")
	}
}
export default function(){
	return (req,res)=>{
		if(localStorage.getItem("adminName")){
			res.render(adminList());
			// 为添加按钮增加一个单击事件
			document.querySelector("#addAdminList").onclick = addAdinListHandler;
			// 呈现管理员列表
			getAdminListAsync();
			document.querySelector("#adminListWrap").onclick = adminListWrapHandler;
		}else{
			router.go("/login")
		}
		
	}
}


